/**
 * 
 */
package br.com.salaodebeleza.domain.converter;

import java.util.regex.Pattern;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;

/**
 * @author tfr_souza
 *
 */
@FacesConverter("fieldValorConverter")
public class FieldValorConverter implements Converter {

	@Override
	public Object getAsObject(FacesContext context, UIComponent component, String value) {
		Double valorDecimal = null;
		
		if(value.equals("")){
			FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Valor informado não é numérico", "");
			throw new ConverterException(msg);
		}else if (Pattern.matches("^([0-9]*)\\.{0,1}([0-9]*)$", value)) {
			valorDecimal = new Double(value);
		} else {
			FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Valor informado não é numérico", "");
			throw new ConverterException(msg);
		}
		
		return valorDecimal;
	}

	@Override
	public String getAsString(FacesContext context, UIComponent component, Object value) {
		return value.toString();
	}

}
